package com.ruoyi.project.system.service;

import java.util.List;

import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.system.domain.SysCredentialsType;
import com.ruoyi.project.system.domain.SysDept;

/**
 * 证书类型Service接口
 *
 * @author ruoyi
 * @date 2020-04-26
 */
public interface ISysCredentialsTypeService {
    /**
     * 查询证书类型
     *
     * @param credentialsTypeId 证书类型ID
     * @return 证书类型
     */
    public SysCredentialsType selectSysCredentialsTypeById(Long credentialsTypeId);

    /**
     * 查询证书类型列表
     *
     * @param sysCredentialsType 证书类型
     * @return 证书类型集合
     */
    public List<SysCredentialsType> selectSysCredentialsTypeList(SysCredentialsType sysCredentialsType);

    /**
     * 新增证书类型
     *
     * @param sysCredentialsType 证书类型
     * @return 结果
     */
    public int insertSysCredentialsType(SysCredentialsType sysCredentialsType);

    /**
     * 修改证书类型
     *
     * @param sysCredentialsType 证书类型
     * @return 结果
     */
    public int updateSysCredentialsType(SysCredentialsType sysCredentialsType);

    /**
     * 批量删除证书类型
     *
     * @param credentialsTypeIds 需要删除的证书类型ID
     * @return 结果
     */
    public int deleteSysCredentialsTypeByIds(Long[] credentialsTypeIds);

    /**
     * 删除证书类型信息
     *
     * @param credentialsTypeId 证书类型ID
     * @return 结果
     */
    public int deleteSysCredentialsTypeById(Long credentialsTypeId);

    /**
     * 校验证书类型是否唯一
     *
     * @param credentialsType
     * @return
     */
    String checkTypeNameUnique(SysCredentialsType credentialsType);

    List<SysCredentialsType> buildDeptTree(List<SysCredentialsType> credentialsTypes);

    List<TreeSelect> buildDeptTreeSelect(List<SysCredentialsType> SysCredentialsTypes);
}
